home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 18 / forth / whatis.doc < prev    next >
Encoding:
Text File  |  1986-09-18  |  51.7 KB  |  1,609 lines

  1. ! ( n addr  -- )
  2.    Stores a number at addr
  3. !csp ( -- )
  4.    Remembers the stack pointer
  5. " ( -- addr len )    ccc"
  6.    Collects a string from the input stream
  7. "" ( -- addr )    ccc
  8.    Collects a word from the input stream
  9. ", ( addr len -- )
  10.    Places a string at the top of the dictionary
  11. ". ( addr -- )
  12.    Displays a packed string.  Equivalent to COUNT TYPE
  13. "cat ( startstr-addr endstr-addr -- )
  14.    Appends the packed string at startstr-addr to the end of the other one
  15. "compile ( string -- )
  16.    Compiles or interprets a word
  17. "copy ( fromaddr toaddr -- )
  18.    Copies a packed string from fromaddr to toaddr
  19. "create ( str -- )
  20.    Defines a word from a string on the stack
  21. "eload ( filename -- )
  22.    Interprets a file, looking for it first in an EMACS buffer
  23. "load ( filename -- )
  24.    Interprets the file whose name is the packed string on the stack
  25. "move ( addr1 addr2 -- addr2 )
  26.    Moves a packed string from addr1 to addr2
  27. # ( +l1  --  +l2 )
  28.    Converts a digit in pictured numeric output
  29. #> ( l  --  addr +n )
  30.    Ends pictured numeric output
  31. #align ( -- n )
  32.    The alignment granularity for the cpu; 2 for 68000
  33. #columns ( -- n )
  34.    The number of text columns on the screen
  35. #fbufs ( -- n )
  36.    The number of file buffers
  37. #fds ( -- n )
  38.    The number of file descriptors available for use by FLOAD
  39. #line ( -- addr )
  40.    User variable containing the line number on the output device
  41. #lines ( -- n )
  42.    The number of text lines on the screen
  43. #out ( -- addr )
  44.    User variable containing the column number on the output device
  45. #s ( +l  --  0  )
  46.    Converts the rest of the digits in pictured numeric output
  47. #threads ( -- n )
  48.    The number of threads used by the dictionary hashing scheme
  49. #tib ( -- addr )
  50.    Size of Terminal Input Buffer
  51. #times ( -- )
  52.    The number of times to re-interpret command line
  53. #user ( -- n )
  54.    The first unused USER area offset
  55. #vocs ( -- n )
  56.    The number of vocabularies that can be in the search order at one time
  57. ' ( -- acf )    name
  58.    Finds a word in the dictionary
  59. 'tib ( -- addr )
  60.    Variable containing the address of the terminal input buffer
  61. 'user# ( -- user# )    name
  62.    Finds the user number associated with the word if there is one
  63. 'word ( -- addr )
  64.    The address where WORD puts its string
  65. ( ( -- )
  66.    Begins a comment
  67. (") ( -- addr len )
  68.    Run-time word compiled by "
  69. ("s) ( -- addr )
  70.    Run-time word compiled by [""]
  71. (#lines ( -- n )
  72.    The number of text lines on the screen
  73. (') ( -- acf )
  74.    Run-time word compiled by [']
  75. (+loop) ( n -- )
  76.    Run-time word compiled by +LOOP
  77. (.") ( -- )
  78.    Run-time word compiled by ."
  79. (.) ( n -- addr len )
  80.    Converts a signed number to a character string
  81. (.s ( -- )
  82.    Displays the contents of the data stack
  83. (;code) ( -- )
  84.    Run-time word compiled by ;CODE and DOES>
  85. (?do) ( end start -- )
  86.    Run-time word compiled by ?DO
  87. (?leave) ( flag -- )
  88.    Run-time word compiled by ?LEAVE
  89. (abort ( -- )
  90.    The Default implementation of ABORT
  91. (abort") ( flag -- )
  92.    Run-time word compiled by ABORT"
  93. (bye ( -- )
  94.    The Default implementation of BYE
  95. (cd ( pathname -- )
  96.    Change current directory
  97. (cold-hook ( -- )
  98.    The Default implementation of COLD-HOOK
  99. (compile) ( acf -- )
  100.    Compiles a compilation address into the dictionary
  101. (cr ( -- )
  102.    Outputs a carriage return character
  103. (create ( -- )    name
  104.    The default implementation of CREATE
  105. (delete ( filename -- )
  106.    Deletes a file
  107. (dis ( addr -- )
  108.    Disassembles starting at addr
  109. (disk-free ( -- bytes-free )
  110.    Returns the number of free bytes on current drive
  111. (do) ( end start -- )
  112.    Run-time word compiled by DO
  113. (emit ( char -- )
  114.    Displays a character
  115. (endcase) ( selector -- )
  116.    Run-time word compiled by ENDCASE
  117. (endof) ( -- )
  118.    Run-time word compiled by ENDOF
  119. (exec ( program-filename command-tail -- )
  120.    Executes a TOS program
  121. (expect ( addr +n -- )
  122.    Simple implementation of EXPECT
  123. (files ( match-str -- )
  124.    Displays file names matching pattern
  125. (forget) ( addr -- )
  126.    Reclaims the dictionary space after addr
  127. (interactive? ( -- flag )
  128.    True if the input stream is interactive
  129. (interpret ( -- )
  130.    The Default implementation of INTERPRET
  131. (is ( action-acf deferred-acf -- )
  132.    Installs a new action in a DEFER word
  133. (is) ( action-acf -- )
  134.    Run-time word compiled by IS
  135. (l.) ( l -- addr len )
  136.    Converts a signed 32-bit number to a character string
  137. (leave) ( -- )
  138.    Run-time word compiled by LEAVE
  139. (lf ( -- )
  140.    Outputs a linefeed character
  141. (literal? ( str -- str false | literal true )
  142.    The Default implementation of LITERAL? 
  143. (load ( fd -- )
  144.    Loads the file whose file descriptor is fd
  145. (loop) ( -- )
  146.    Run-time word compiled by LOOP
  147. (md ( path -- )
  148.    Make a new directory
  149. (more 
  150.    Display file, pausing at end of screen
  151. (number ( addr -- l )
  152.    The Default implementation of NUMBER
  153. (of) ( selector test -- [selector] )
  154.    Run-time word compiled by OF
  155. (patch ( new-number old-number acf -- )
  156.    Substitutes new-number for first instance of old-number after acf
  157. (pause ( -- )
  158.    The implementation of PAUSE used when multitasking is active
  159. (pgo ( addr -- )
  160.    Executes a previously-loaded TOS program
  161. (pload ( program-filename command-tail -- addr )
  162.    Loads a TOS program
  163. (prompt ( -- )
  164.    The Default implementation of PROMPT
  165. (quit ( -- )
  166.    The Default implementation of QUIT
  167. (rd ( path -- )
  168.    Delete a directory
  169. (rename ( old-name new-name -- )
  170.    Renames a file
  171. (rstrace ( end-addr start-addr -- )
  172.    Displays words nested on the return stack image between end and start
  173. (s ( -- )    stack-comment
  174.    Alternate form of stack comment
  175. (see) ( acf -- )
  176.    Decompiles the word
  177. (set-relocation-bit ( addr -- addr )
  178.    The Default implementation of SET-RELOCATION-BIT
  179. (size ( pattern-str -- )
  180.    Shows the sizes of all files matching pattern-str
  181. (tail 
  182.    Display the end of the file, pausing at end of screen
  183. (type ( addr +n -- )
  184.    The Default implementation of TYPE
  185. (u.) ( u -- addr len )
  186.    Convert an unsigned number to a character string
  187. (ul.) ( ul -- addr len )
  188.    Converts an unsigned 32-bit number to a character string
  189. (warm-hook ( -- )
  190.    The Default implementation of WARM-HOOK
  191. (where ( -- )
  192.    The Default implementation of WHERE
  193. (word ( char -- addr )
  194.    The Default implementation of WORD
  195. * ( n1 n2  --  n3 )
  196.    Multiplies n1 times n2
  197. */ ( n1 n2 n3  -- n4 )
  198.    n1*n2/n3
  199. */mod ( n1 n2 n3  -- n4 n5 )
  200.    n4 is remainder, n5 is quotient of n1*n2/n3
  201. + ( n1 n2 -- n3 )
  202.    Adds n1+n2
  203. +! ( n addr -- )
  204.    Adds n to the number stored at addr
  205. +dis ( -- )
  206.    Continues disassembling from the last stopping point
  207. +fseek ( l.offset fd -- )
  208.    Changes the position within a file
  209. +load ( -- )
  210.    Interprets from the current EMACS buffer starting at the cursor
  211. +loop ( n -- )
  212.    Ends DO .. +LOOP construct; adds n to loop index
  213. +eopen ( -- fd )
  214.    Opens the current EMACS buffer as a file, starting at the cursor position
  215. +str ( addr1 -- addr2 )
  216.    Finds the end of the packed string at addr1
  217. , ( n -- )
  218.    Places a number in the dictionary
  219. ," ( -- )    ccc"
  220.    Places a string at the top of the dictionary
  221. - ( n1 n2 -- n3 )
  222.    Subtracts n1-n2
  223. -rot ( n1 n2 n3  ---  n3 n1 n2 )
  224.    Shuffles top 3 stack items
  225. -trailing ( addr +n1  --  addr +n2 )
  226.    Removes trailing spaces
  227. . ( n  -- )
  228.    Displays a number
  229. ." ( -- )    ccc"
  230.    Compiles a string for later display
  231. .( ( -- )    ccc)
  232.    Displays a string immediately
  233. .calls ( acf -- )
  234.    Shows all the words which call the word acf
  235. .current-word ( ip -- )
  236.    Displays the name of a word given any address within its body
  237. .d ( n -- )
  238.    Displays n in decimal without changing BASE
  239. .date ( day month year -- )
  240.    Displays the date from numbers on the stack
  241. .dir 
  242.    Displays the current directory name
  243. .disk-free 
  244.    Shows the number of free bytes on the current drive
  245. .drive ( -- )
  246.    Displays the name of the current disk drive
  247. .id ( anf -- )
  248.    Displays the name of a word from its name field address
  249. .month ( month -- )
  250.    Displays the name of the numbered month
  251. .name ( acf -- )
  252.    Displays the name of a word from its compilation address
  253. .now ( -- )
  254.    Displays the current time
  255. .r ( n +n -- )
  256.    Displays a number in a fixed width field
  257. .s ( -- )
  258.    Displays the contents of the data stack
  259. .tab ( string-length -- )
  260.    Advances to the next output field
  261. .time ( seconds minutes hours -- )
  262.    Displays the time from numbers on the stack
  263. .today ( -- )
  264.    Displays today's date
  265. .version ( -- )
  266.    Displays the version number of the Forth system
  267. .x ( n -- )
  268.    Displays n in hex without changing BASE
  269. / ( n1 n2  --  n3 )
  270.    Divides n1/n2
  271. /c ( -- n )
  272.    The number of bytes in a byte; 1
  273. /c* ( n1 -- n2 )
  274.    Multiplies by the size of a byte
  275. /fbuf ( -- n )
  276.    The number of bytes in a file buffer
  277. /fd ( -- n )
  278.    The number of bytes in a file descriptor
  279. /l ( -- n )
  280.    The number of bytes in a longword; 4
  281. /l* ( n1 -- n2 )
  282.    Multiply by the size of a longword
  283. /link ( -- n )
  284.    The number of bytes in a dictionary link; 4
  285. /mod ( n1 n2  --  n3 n4 )
  286.    n3 is remainder, n4 is quotient of n1/n2
  287. /n ( -- n )
  288.    The number of bytes in a normal; 4
  289. /n* ( n1 -- n2 )
  290.    Multiplies by the size of a stack item
  291. /token ( -- n )
  292.    The number of bytes in a compiled address; 4
  293. /w ( -- n )
  294.    The number of bytes in a 16-bit word; 2
  295. /w* ( n1 -- n2 )
  296.    Multiply by the size of a word
  297. 0< ( n  --  flag )
  298.    Is n < 0 ?
  299. 0<= ( n  --  flag )
  300.    True if n is less than or equal to zero
  301. 0<> ( n  --  flag )
  302.    True if n is not equal to zero
  303. 0= ( n  --  flag )
  304.    Is n = 0 ?
  305. 0> ( n  --  flag )
  306.    Is n > 0 ?
  307. 0>= ( n  --  flag )
  308.    True if n is greater than or equal to zero
  309. 1+ ( n1  --  n2 )
  310.    Add 1
  311. 1- ( n1  --  n2 )
  312.    Subtracts 1
  313. 16-bit ( -- )
  314.    Aborts since this isn't a 16-bit system
  315. 16\ ( -- )
  316.    Ignores rest of line since this isn't a 16-bit system
  317. 2! ( n1 n2 addr -- )
  318.    Stores 2 numbers at addr
  319. 2* ( n1 -- n2 )
  320.    Multiplies by 2
  321. 2+ ( n1 -- n2 )
  322.    Adds 2
  323. 2- ( n1 -- n2 )
  324.    Subtracts 2
  325. 2/ ( n1 -- n2 )
  326.    Divides by 2
  327. 25lines ( -- )
  328.    Displays text in 25 lines x 80 columns format; monochrome only
  329. 2@ ( addr -- n1 n2 )
  330.    Fetchs 2 numbers from addr
  331. 2constant ( n1 n2  -- )
  332.    Defines a 2-number constant
  333. 2drop ( n1 n2  -- )
  334.    Removes 2 numbers from stack
  335. 2dup ( n1 n2 --  n1 n2  n1 n2 )
  336.    Duplicates 2 numbers
  337. 2over ( n1 n2  n3 n4  --  n1 n2  n3 n4  n5 n6 )
  338.    Copies 2 numbers
  339. 2rot ( n1 n2  n3 n4  n5 n6  --  n3 n4  n5 n6  n1 n2 )
  340.    Rotates 3 pairs of numbers
  341. 2swap ( n1 n2  n3 n4  --  n3 n4  n1 n2 )
  342.    Exchanges 2 pairs of numbers
  343. 2variable ( -- )
  344.    Defines a variable for 2 numbers
  345. 32-bit ( -- )
  346.    Does nothing, since this is a 32-bit system
  347. 32\ ( -- )
  348.    Interprets rest of line since this is a 32-bit system
  349. 3dup ( a b c -- a b c a b c )
  350.    Duplicates 3 stack items
  351. 4* ( n1 -- n2 )
  352.    Multiplies by 4; use /N* instead
  353. 40lines ( -- )
  354.    Displays text in 40 lines x 80 columns format; monochrome only
  355. 44lines ( -- )
  356.    Displays text in 44 lines x 80 columns format; monochrome only
  357. 4dup ( a b c d -- a b c d a b c d )
  358.    Duplicates 4 stack items
  359. 50lines ( -- )
  360.    Displays text in 50 lines x 80 columns format; monochrome only
  361. 8* ( n1 -- n2 )
  362.    Multiplies by 8
  363. : ( -- sys )    name
  364.    Starts the compilation of a new colon definition
  365. ; ( -- )
  366.    Finishes the compilation of a colon definition
  367. ;code ( -- )
  368.    Begins assembling the run-time action for CREATE ... ;CODE words
  369. < ( n1 n2  --  flag )
  370.    Is n1 < n2 ?
  371. <# ( -- )
  372.    Initializes pictured numeric output
  373. << ( n1 cnt -- n2 )
  374.    Left shifts n1 by count places
  375. <<a ( n1 cnt -- n2 )
  376.    Arithmetic left shifts n1 by count places
  377. <= ( n1 n2  --  flag )
  378.    True if n1 is less than or equal to n2
  379. <> ( n1 n2  --  flag )
  380.    True if n1 is not equal to n2
  381. <mark ( -- addr )
  382.    Remembers target of backward branch
  383. <resolve ( addr -- )
  384.    Finishes a backward branch
  385. <w@ ( addr -- n )
  386.    Fetchs the signed 16-bit word at addr
  387. = ( n1 n2  --  flag )
  388.    Is n1 = n2 ?
  389. > ( n1 n2  --  flag )
  390.    Is n1 > n2 ?
  391. >= ( n1 n2  -- flag )
  392.    True if n1 is greater than or equal to n2
  393. >> ( n1 cnt -- n2 )
  394.    Rights shift count n1 by places
  395. >>a ( n1 cnt -- n2 )
  396.    Arithmetic right shifts n1 by count places
  397. >body ( acf -- apf )
  398.    Finds the parameter field address from the compilation address
  399. >data ( acf -- addr )
  400.    Finds the data storage address for the word at acf
  401. >dmy ( packed-date -- day mon yr )
  402.    Converts GEMDOS packed date format to day, month, and year
  403. >hms ( packed-time -- sec min hr )
  404.    Converts GEMDOS packed time format to second, minute, and hour
  405. >in ( -- addr )
  406.    Variable containing input stream offset; Implemented in BLOCK.FTH
  407. >link ( acf -- alf )
  408.    Finds link field address from compilation address
  409. >mark ( -- addr )
  410.    Remembers the location of forward branch
  411. >name ( acf -- anf )
  412.    Finds name field address from compilation address
  413. >r ( n -- )
  414.    Moves a number to the return stack
  415. >relbit ( addr -- offset rel-table-addr )
  416.    Converts addr to a bit offset and the relocation table address
  417. >resolve ( addr -- )
  418.    Finishes a forward branch
  419. >threads ( voc-acf -- addr )
  420.    Finds the threads for a vocabulary
  421. >type ( addr +n -- )
  422.    Displays characters and stores them at PAD
  423. >user ( apf -- user-var-addr )
  424.    Finds a user number that is in the parameter field
  425. >user# ( acf -- user# )
  426.    Finds the user number associated with the word if there is one
  427. ? ( addr  -- )
  428.    Displays the contents of a variable
  429. ??cr ( -- )
  430.    New line if not already at left side of line
  431. ?branch ( flag -- )
  432.    High-level conditional branch
  433. ?comp ( -- )
  434.    Aborts if not compiling
  435. ?cr ( -- )
  436.    New line if fewer than no space left on this one
  437. ?csp ( -- )
  438.    Checks stack pointer against value saved by !CSP
  439. ?dnegate ( d1 f -- d2 )
  440.    Obsolete
  441. ?do ( w1 w2 -- )
  442.    Begins a ?DO .. LOOP to be executed 0 or more times
  443. ?dup ( n  --  n n )
  444.    Duplicates n if it is non-zero
  445. ?empty ( stack -- flag )
  446.    True if the user stack is empty
  447. ?enough ( n -- )
  448.    Aborts if the stack contains fewer than n numbers
  449. ?exec ( -- )
  450.    Aborts if not interpreting
  451. ?leave ( flag -- )
  452.    Exits from a DO .. LOOP if flag is nonzero
  453. ?line ( n -- )
  454.    New line if fewer than n spaces left on this one
  455. ?lnegate ( l1 f -- l2 )
  456.    Negates l1 if flag is true
  457. ?missing ( flag -- )
  458.    Aborts if flag is nonzero
  459. ?negate ( n flag -- -n )
  460.    Negates n if flag is true
  461. ?pairs ( n1 n2 -- )
  462.    Aborts if n1 is not equal to n2
  463. ?stack ( -- )
  464.    Aborts if the stack pointer is out of range
  465. ?to-column ( -- )
  466.    Advances output to indicated column or starts a new line
  467. @ ( addr  --  n )
  468.    Fetches a number from addr
  469. a: 
  470.    Selects drive A
  471. abort ( -- )
  472.    Aborts current execution and interprets keyboard commands
  473. abort" ( flag -- )    ccc"
  474.    Conditional abort with message
  475. abs ( n -- u )
  476.    Absolute value
  477. alias ( -- )    new-name existing-name
  478.    Creates a new name for an existing word
  479. align ( -- )
  480.    Makes sure the dictionary pointer is on a machine word boundary
  481. aligned ( addr1 -- addr2 )
  482.    Adjusts an address to a machine word boundary
  483. alloc-mem ( nbytes -- addr )
  484.    Allocates nbytes of memory and return its address
  485. allot ( n -- )
  486.    Allocates space in the dictionary
  487. also ( -- )
  488.    Extends the search order
  489. and ( n1 n2 -- n3 )
  490.    Logical and
  491. another-file? ( -- flag )
  492.    Selects next matching file name; true if there is one.
  493. another? ( -- [ anf ] more? )
  494.    Selects next word in vocabulary
  495. append-open ( name -- )
  496.    Opens file for appending
  497. append-to-file ( -- )    filename
  498.    Temporarily redirects output to the end of a file
  499. appending     filename
  500.    Opens file for appending
  501. ascii ( -- char )    ccc
  502.    Numerical value of first ascii character of next word
  503. assembler ( -- )
  504.    Vocabulary containing the assembler
  505. at ( line column -- )
  506.    Moves the cursor to line,column on the screen
  507. b: 
  508.    Selects drive B
  509. backspaces ( n -- )
  510.    Outputs n backspaces
  511. base ( --  addr )
  512.    Variable containing number base
  513. base-page ( -- addr )
  514.    The address of Forth's base page
  515. bdos: ( function# -- )    name
  516.    Begins the definition of a word to execute a GEMDOS/BDOS function
  517. beep ( -- )
  518.    Rings the bell
  519. begin ( -- )
  520.    Begins a BEGIN .. WHILE .. REPEAT loop
  521. bell ( -- n )
  522.    The ascii code for the bell character
  523. between ( n min max -- f )
  524.    True if min <= n <= max
  525. binary ( -- )
  526.    Sets the number base to two
  527. bios: ( function# -- )    name
  528.    Begins the definition of a word to execute a BIOS function
  529. bitclear ( bit# addr -- )
  530.    Clears bit number bit# in the array at addr
  531. bitset ( bit# addr -- )
  532.    Sets bit number bit# in the array at addr
  533. bittest ( bit# addr -- flag )
  534.    True if bit number bit# in the array at addr is set
  535. bl ( -- n )
  536.    The ascii code for the space character; decimal 32
  537. blank ( addr u -- )
  538.    Sets u bytes of memory to space
  539. blk ( -- addr )
  540.    Variable containing input block number; Implemented in BLOCK.FTH
  541. block ( u -- addr )
  542.    Gets mass storage block number u; Implemented in BLOCK.FTH
  543. blword ( -- addr )    ccc
  544.    Gets a space-delimited string and return it as a packed string
  545. body> ( apf -- acf )
  546.    Finds compilation address from parameter field address
  547. bounds ( addr1 len -- addr2 addr1 )
  548.    Converts address and length to endaddr startaddr
  549. branch ( -- )
  550.    High-level unconditional branch
  551. bs ( -- n )
  552.    The ascii code for the backspace character
  553. buffer ( u -- addr )
  554.    Gets mass storage buffer number u; Implemented in BLOCK.FTH
  555. bye ( -- )
  556.    Exits from Forth
  557. c! ( n -- addr )
  558.    Stores a byte at addr
  559. c, ( n -- )
  560.    Places a byte in the dictionary
  561. c: 
  562.    Selects drive C
  563. c; ( -- )
  564.    Finishs an assembly language word and automatically assembles NEXT
  565. c@ ( addr -- n )
  566.    Fetches a byte from addr
  567. ca+ ( addr1 index -- addr2 )
  568.    Increments addr1 by index times the size of a byte
  569. ca1+ ( addr1 -- addr2 )
  570.    Increments addr1 by the size of a byte
  571. caller-stack ( -- addr )
  572.    USER variable containing the cold-start value of the stack pointer
  573. canonical ( addr -- addr )
  574.    Converts a string to lower case
  575. caps ( -- addr )
  576.    USER variable controlling upper case/lower case sensitivity
  577. caps-comp ( addr1 addr2 len -- n )
  578.    Compares two byte arrays ignoring case.  n is 0 if they are the same
  579. carret ( -- n )
  580.    The ascii code for the carriage return character
  581. case ( selector -- selector )
  582.    Begins a CASE ... ENDCASE conditional
  583. cd     directory
  584.    Changes the current directory
  585. cdis ( acf -- )
  586.    Disassembles the code word at acf
  587. chdir 
  588.    Same as CD
  589. child-status ( -- addr )
  590.    Status returned by last TOS program executed
  591. clear ( ??? -- )
  592.    Empties the data stack
  593. clearstack ( user-stack -- )
  594.    Empties a user stack
  595. close ( fd -- )
  596.    Closes a file
  597. close-files ( -- )
  598.    Closes all the open file
  599. cmove ( addr1 addr2 u -- )
  600.    Copies u bytes from addr1 to addr2
  601. cmove> ( addr1 addr2 u -- )
  602.    Copies u bytes from addr1 to addr2
  603. cnot ( c1 -- c2 )
  604.    8-bit logical inversion
  605. code ( -- sys )    name
  606.    Starts the definition of an assembly language word
  607. cold ( -- )
  608.    Initializes the Forth system when it is first started
  609. cold-hook ( -- )
  610.    Place to install user-defined initialization code
  611. command-completion ( -- )
  612.    Vocabulary containing helper words for the command completion feature
  613. command: ( -- )    name program-filename
  614.    Defining word for commands to execute TOS programs
  615. comp ( addr1 addr2 len -- n )
  616.    Compares two byte arrays.  n is 0 if they are the same
  617. compare ( addr1 addr2 len -- n )
  618.    Compares two byte arrays.  n is 0 if they are the same
  619. compile ( -- )
  620.    Compiles next word at run time
  621. compile-do-defined ( acf immediate? -- )
  622.    Called to handle a predefined word during compilation
  623. compile-do-literal ( l -- )
  624.    Called to handle number during compilation
  625. compile-do-undefined ( str -- )
  626.    Called to handle an undefined word during compilation
  627. constant ( n -- )    name
  628.    Defines a constant
  629. context ( -- addr )
  630.    Array of vocabularies to search
  631. control ( -- char )    ccc
  632.    Control character number of first character of next word
  633. convert ( +l1 addr1  --  +l2 addr2 )
  634.    Converts a string to a number
  635. copy     source-file destination-file
  636.    Copies source-file to destination-file
  637. copy1     source-file destination-file
  638.    Interactive file copy for single-drive systems
  639. count ( addr1 --  addr2 +n )
  640.    Unpacks a packed string
  641. cr ( -- )
  642.    Terminates a line on the display and goes to the next line
  643. crash ( -- )
  644.    Initial action for words defined by DEFER
  645. crash-rstrace ( -- )
  646.    Displays the return stack image saved from the last crash
  647. create ( -- )    name
  648.    Generic defining word
  649. creset ( byte-mask addr -- )
  650.    Clears bits within the byte at addr
  651. crlf ( -- )
  652.    Outputs a carriage return & linefeed; adjusts #LINE & #OUT
  653. csearch ( c start-addr end-addr -- loc true | false )
  654.    Searches for the byte c between start-addr and end-addr
  655. cset ( byte-mask addr -- )
  656.    Sets bits within the byte at addr
  657. cstr ( addr -- cstr-addr )
  658.    Converts packed string to C string
  659. cstrlen ( cstr-addr -- len )
  660.    Length of a null-terminate C string
  661. ctoggle ( byte-mask addr -- )
  662.    Inverts the masked bits within the byte at addr
  663. current ( -- addr )
  664.    Variable containing compilation vocabulary
  665. cursor-off ( -- )
  666.    Turns off the display cursor
  667. cursor-on ( -- )
  668.    Turns on the display cursor
  669. c_conin ( -- scan-code )
  670.    Reads a key from the keyboard and returns the scan code
  671. d+ ( wd1 wd2 -- wd3 )
  672.    Obsolete
  673. d- ( wd1 wd2 -- wd3 )
  674.    Obsolete
  675. d. ( d -- )
  676.    Obsolete
  677. d.r ( d +n-- )
  678.    Obsolete
  679. d0< ( d -- flag )
  680.    Obsolete
  681. d0> ( d -- flag )
  682.    Obsolete
  683. d: 
  684.    Selects drive D
  685. d< ( d1 d2 -- flag )
  686.    Obsolete
  687. d< ( d1 d2 -- flag )
  688.    Obsolete
  689. d> ( d1 d2 -- flag )
  690.    Obsolete
  691. dark ( -- )
  692.    Use inverse video for future text; usually white-on-black
  693. decimal ( -- )
  694.    Set number base to 10
  695. defer ( -- )    name
  696.    Defining word for forward references or execution vectors
  697. defined ( -- addr 0 )    name
  698.    Finds compilation address of word from the input stream
  699. definer ( acf -- definer-acf )
  700.    Finds the word which defined the word at acf
  701. definitions ( -- )
  702.    Sets compilation vocabulary
  703. del     filename
  704.    Deletes a file
  705. delete     filename
  706.    Deletes a file
  707. delete-char ( -- )
  708.    Deletes the character under the cursor from the screen; doesn't work
  709. delete-line ( -- )
  710.    Deletes the current line from the screen
  711. delimiter ( -- addr )
  712.    USER variable containing the actual delimiter found by WORD
  713. depth ( -- +n )
  714.    How many numbers on stack?
  715. df 
  716.    Show free space on drive; Same as .DISK-FREE
  717. digit ( char base -- digit true | char false )
  718.    Converts a character to a digit
  719. dir     pattern
  720.    Displays all filenames which match the pattern.  default pattern is *.*
  721. dir-attributes ( -- addr )
  722.    Variable containing attributes for file search
  723. dis ( -- )    name
  724.    Disassembles the named code word
  725. disassembler ( -- )
  726.    Vocabulary containing helper words for the disassembler
  727. dma-buffer ( -- addr )
  728.    Buffer containing the file info found by ANOTHER-FILE?
  729. dmax ( d1 d2 -- d3 )
  730.    Obsolete
  731. dmin ( d1 d2 -- d3 )
  732.    Obsolete
  733. dmy> ( day month year -- packed-date )
  734.    Converts day month year to GEMDOS packed date format
  735. dnegate ( d1 -- d2 )
  736.    Obsolete
  737. do ( n1 n2 -- )
  738.    Begins a DO .. LOOP
  739. do-defined ( cfa immediate? -- ?? )
  740.    Called to handle a predefined word during interpreting or compilation
  741. do-literal ( l -- ?? )
  742.    Called to handle number during interpreting or compilation
  743. do-undefined ( str -- )
  744.    Called to handle an undefined word during interpreting or compilation
  745. dodoesaddr ( -- addr )
  746.    Variable containing the address of the DODOES routine
  747. does> ( -- addr )
  748.    Starts the run-time clause for defining words
  749. down ( -- )
  750.    Moves the cursor down one line
  751. download ( -- )    filename
  752.    Receives binary data from the serial port and stores it into a file
  753. dpl ( -- addr )
  754.    Variable containing the position of the decimal point in last number input
  755. drop ( n -- )
  756.    Removes n from the stack
  757. dst? ( -- flag )
  758.    True if daylight savings time
  759. du ( addr -- addr+64 )
  760.    Displays 64 bytes of memory starting at addr
  761. du< ( d1 d2 -- flag )
  762.    Obsolete
  763. du<= ( d1 d2 -- flag )
  764.    Obsolete
  765. du> ( d1 d2 -- flag )
  766.    Obsolete
  767. du>= ( d1 d2 -- flag )
  768.    Obsolete
  769. dump ( addr len -- )
  770.    Displays len bytes of memory starting at addr
  771. dup ( n -- n n )
  772.    Duplicates n.
  773. edit ( -- )
  774.    Enters the EMACS text editor
  775. editor ( -- )
  776.    Not Implemented
  777. eload ( -- )    filename
  778.    Interprets a file, looking for it first in an EMACS buffer
  779. else ( -- )
  780.    Executes the following code if IF failed
  781. emit ( char -- )
  782.    Displays the character
  783. emit1 ( char -- )
  784.    The Default implementation of EMIT
  785. empty-buffers ( -- )
  786.    Unassigns all block buffers; Implemented in BLOCK.FTH
  787. end-code ( -- )
  788.    Ends an assembly language definition without assembling NEXT
  789. end-string-array ( -- )
  790.    Finishes the definition of a string array
  791. endcase ( selector -- )
  792.    Terminates a CASE ... ENDCASE conditional
  793. endof ( -- )
  794.    Terminates an OF ... ENDOF clause within a CASE ... ENDCASE conditional
  795. entry ( -- addr )
  796.    USER variable used to implement multitasking
  797. eof ( -- n )
  798.    Value returned by FGETC upon end of file
  799. eopen ( filename -- fd )
  800.    Opens an EMACS buffer as though it were a file
  801. era 
  802.    Same as DELETE
  803. erase ( addr u -- )
  804.    Sets u bytes of memory to 0
  805. erase-screen ( -- )
  806.    Clears the screen
  807. errno ( -- addr )
  808.    USER variable containing the last system error code
  809. error-output ( -- )
  810.    Selects the error output stream
  811. error? ( system-return-value -- flag )
  812.    True if system-return-value is an error code, and stores it in ERRNO
  813. eval ( addr len -- )
  814.    Interpret from a string
  815. even ( n1 -- n2 )
  816.    Adjusts a number to make it even.  n2 >= n1
  817. exec ( -- )    program-filename command-tail
  818.    Executes a TOS program
  819. execute ( acf -- )
  820.    Executes the word whose compilation address is on the stack
  821. exit ( -- )
  822.    Returns from the current word
  823. exit? ( -- flag )
  824.    True if the user wants the output to be terminated
  825. expect ( addr +n -- )
  826.    Gets a line of input from the keyboard and stores it at addr
  827. expect-fopen ( -- fd )
  828.    Opens a file which gets its bytes from the keyboard
  829. false ( -- 0 )
  830.    The value FALSE, which is 0
  831. fexit ( -- )
  832.    Ignores the rest of the current input file
  833. fflush ( fd -- )
  834.    Writes out buffered bytes to file
  835. fgetc ( fd -- byte )
  836.    Reads a byte from a file
  837. fgets ( addr count fd -- nread )
  838.    Reads a string from a file
  839. file-exists? ( name -- f )
  840.    True if the named file already exists
  841. file-pattern ( pattern-string -- )
  842.    Initializes the file search pattern for future calls to ANOTHER-FILE?
  843. file-protection ( -- addr )
  844.    Variable containing the attributes for newly-created files
  845. filec! ( byte l.addr fd -- )
  846.    Writes a byte to a file
  847. filec@ ( l.addr fd -- byte )
  848.    Reads a byte from a file
  849. files     pattern
  850.    Displays all filenames matching the pattern.  default pattern is *.*
  851. fill ( addr u byte  -- )
  852.    Sets u bytes of memory to byte
  853. find ( addr1 -- addr2 n )
  854.    Finds a word in the dictionary
  855. flip ( w1 -- w2 )
  856.    Swaps the bytes within a 16-bit word
  857. fload ( -- )    filename
  858.    Interprets a file
  859. flush ( -- )
  860.    Saves the contents of mass storage buffers; Implemented in BLOCK.FTH
  861. follow ( threads -- )
  862.    Prepares to scan a vocabulary; see ANOTHER?
  863. forget ( -- )    name
  864.    Removes word from dictionary
  865. forth ( -- )
  866.    The main vocabulary
  867. forth-83 ( -- )
  868.    Asserts the dialect
  869. fputc ( byte fd -- )
  870.    Writesu a byte to a file
  871. fputs ( addr count fd -- )
  872.    Writes a string to a file
  873. free-mem ( addr #bytes -- )
  874.    Frees memory allocated by ALLOC-MEM
  875. fseek ( l.addr fd -- )
  876.    Sets the position within a file
  877. fseek-from-end ( l.offset fd -- )
  878.    Sets position relative to the end of a file
  879. fsetbuffer ( addr len fd --  )
  880.    Replaces the buffer for the file fd with the one at addr len
  881. fsize ( fd -- l.size )
  882.    Finds the size of a file
  883. fstr ( cstr-addr -- addr2 )
  884.    Converts a C string to a packed string
  885. ftell ( fd -- l.addr )
  886.    Finds the current position within a file
  887. getcword ( addr delim fd -- addr )
  888.    Reads a delimited string from a file
  889. getrez ( -- resolution )
  890.    Returns the screen resolution; 0 - low   1 - medium   2 - high
  891. getword ( addr fd -- addr )
  892.    Read a space-delimited string from a file
  893. help ( -- )
  894.    Displays a brief help message
  895. here ( -- addr )
  896.    Address of top of dictionary
  897. hex ( -- )
  898.    Sets the number base to 16
  899. hidden ( -- )
  900.    Vocabulary containing words used only to implement other words
  901. hide ( -- )
  902.    Makes the most recent word invisible
  903. hms> ( sec min hr -- packed-time )
  904.    Converts sec min hr to GEMDOS packed time format
  905. hold ( char  -- )
  906.    Inserts the char in the pictured numeric output string
  907. i ( -- n )
  908.    Loop index
  909. if ( flag -- )
  910.    Executes following code if flag is true
  911. ifd ( -- addr )
  912.    Variable for input file descriptor
  913. ifdef ( -- )    name
  914.    Continues interpreting if word is defined
  915. ifend ( -- )
  916.    Terminates an interpreted conditional expression
  917. ifndef ( -- )    name
  918.    Continues interpreting if word is not defined
  919. iftrue ( [ flag ] -- )
  920.    Conditional useable while interpreting
  921. ignoredom ( -- )
  922.    Vocabulary containing conditional compilation words
  923. immediate ( -- )
  924.    Marks the last word as immediate
  925. immediate? ( acf -- flag )
  926.    True if word is immediate
  927. in-file ( -- addr )
  928.    Variable containing the file descriptor of the interpreter input stream
  929. init-malloc ( -- )
  930.    Initializes the ALLOC-MEM memory allocator
  931. init-relocation ( -- )
  932.    Initializes the relocation table
  933. init-user ( -- )
  934.    Initializes the USER area at startup time
  935. insert-char ( char -- )
  936.    Inserts the character at the cursor position; doesn't work on the Atari
  937. insert-line ( -- )
  938.    Inserts a new line on the screen at the cursor position
  939. interactive? ( -- flag )
  940.    True if the input stream is coming from the keyboard
  941. interpret ( -- )
  942.    Interprets the input stream
  943. interpret-do-defined ( cfa immediate? -- ?? )
  944.    Called to handle a predefined word during interpreting
  945. interpret-do-literal ( l -- l  )
  946.    Called to handle number during interpreting
  947. interpret-do-undefined ( str -- )
  948.    Called to handle an undefined word during interpreting
  949. is ( action-acf -- )    name
  950.    Installs a new action in a DEFER word
  951. is-now ( seconds minutes hours -- )
  952.    Sets the time
  953. is-today ( day month year -- )
  954.    Sets the date
  955. isdst ( -- addr )
  956.    Variable containing true if daylight savings time
  957. j ( -- n )
  958.    Loop index for next enclosing loop
  959. k ( -- n )
  960.    Loop index for second enclosing loop
  961. key ( -- char )
  962.    True if a key has been typed on the keyboard
  963. keys-forth ( -- )
  964.    Vocabulary containing keystroke definitions for the command line editor
  965. kill-line ( -- )
  966.    Clears the current line to the right of the cursor
  967. kill-screen ( -- )
  968.    Clears the screen from the cursor position onward
  969. l* ( l1 l2 -- l3 )
  970.    Explicit 32-bit multiplication
  971. l+ ( l1 l2 -- l3 )
  972.    Explicit 32-bit addition
  973. l+! ( l addr  -- )
  974.    Adds l to the 32-bit number at addr
  975. l, ( l -- )
  976.    Places a longword in the dictionary
  977. l- ( l1 l2 -- l3 )
  978.    Explicit 32-bit subtraction l1-l2
  979. l->n ( l -- n )
  980.    Converts a longword to a stack item; noop on this system
  981. l->w ( l -- w )
  982.    Converts a longword to a word
  983. l. ( l -- )
  984.    Displays a 32-bit signed number
  985. l.r ( l +n -- )
  986.    Displays a 32-bit signed number in a fixed-width field
  987. l0= ( l  --  flag )
  988.    True if l is zero
  989. l2/ ( l1 -- l2 )
  990.    Explicit 32-bit divide-by-2
  991. l2dup ( l1 l2 -- l1 l2 l1 l2 )
  992.    Duplicates a pair of longwords
  993. l< ( l1 l2  --  flag )
  994.    True if l1 is less than l2
  995. l<< ( l1 cnt -- l2 )
  996.    Explicit 32-bit left shift count places
  997. l<<a ( l1 cnt -- l2 )
  998.    Explicit 32-bit arithmetic shift count places
  999. l= ( l1 l2 -- flag )
  1000.    True if l1 is equal to l2
  1001. l>= ( l1 l2 -- flag )
  1002.    True if l1 is less than l2; explicitly 32-bit
  1003. l>> ( l1 cnt -- l2 )
  1004.    Explicit 32-bit right shift count places
  1005. l>>a ( l1 cnt -- l2 )
  1006.    Explicit 32-bit arithmetic right shift count places
  1007. l>name ( alf -- anf )
  1008.    Finds the name field address from link field address
  1009. l>r ( l -- )
  1010.    Moves a longword to the return stack
  1011. l@ ( addr -- l )
  1012.    Fetchs the 32-bit longword at addr
  1013. la+ ( addr1 index -- addr2 )
  1014.    Increments addr1 by index times the size of a longword
  1015. la1+ ( addr1 -- addr2 )
  1016.    Increments addr1 by the size of a longword
  1017. labs ( l -- ul )
  1018.    Explict 32-bit absolute value
  1019. land ( l1 l2 -- l3 )
  1020.    Explicit 32-bit logical and
  1021. last ( -- addr )
  1022.    USER variable containing the name field address of the last word created
  1023. lbetween ( l1 lmin lmax -- flag )
  1024.    True if lmin <= l1 <= lmax; explicitly 32-bit
  1025. lcc ( char -- lower-case-char )
  1026.    Converts char to lower case
  1027. lconstant ( l -- )    name
  1028.    Defines a 32-bit constant
  1029. ldrop ( l -- )
  1030.    Removes a longword from the stack
  1031. ldup ( l -- l l )
  1032.    Duplicates l
  1033. leave ( -- )
  1034.    Exit from DO .. LOOP
  1035. left ( -- )
  1036.    Moves the cursor left one column
  1037. length ( addr -- addr+2 len )
  1038.    Unpacks a string containing a 16-bit length field
  1039. lf ( -- )
  1040.    Outputs a linefeed character and adjusts #LINE
  1041. light ( -- )
  1042.    Use normal video for future text; usually black-on-white
  1043. linefeed ( -- n )
  1044.    The ASCII code for the line feed character
  1045. link ( -- addr )
  1046.    USER variable containing the address of the next task
  1047. link! ( link addr -- )
  1048.    Stores a dictionary link
  1049. link, ( link -- )
  1050.    Places a link in the dictionary
  1051. link> ( alf -- acf )
  1052.    Finds compilation address from link field address
  1053. link@ ( lfa -- link )
  1054.    Fetches a dictionary link
  1055. list ( u  -- )
  1056.    Displays the contents of a mass storage block. Implemented in BLOCK.FTH
  1057. literal ( -- n )
  1058.    Compiles a number
  1059. literal? ( str -- str false | n true )
  1060.    Checks to see if a string is a number during interpreting or compilation
  1061. lliteral ( -- l )
  1062.    Compiles an explicit 32-bit number
  1063. lmargin ( -- addr )
  1064.    Variable containg left margin for output formatting
  1065. lmax ( l1 l2 -- l3 )
  1066.    Explict 32-bit maximum
  1067. lmin ( l1 l2 -- l3 )
  1068.    Explict 32-bit minimun
  1069. lnegate ( l1 -- l2 )
  1070.    Explicit 32-bit negation
  1071. lnot ( l1 -- l2 )
  1072.    Explicit 32-bit logical inversion
  1073. lnover ( l1 n -- l1 n l2 )
  1074.    Copies a longword over a normal
  1075. lnswap ( l n -- n l )
  1076.    Swaps a longword and a normal
  1077. load ( u -- )
  1078.    Interprets a mass storage block; Implemented in BLOCK.FTH
  1079. lobyte ( n -- c )
  1080.    Masks off high bits, leaving the least-significant byte
  1081. long? ( -- flag )
  1082.    True if the number that was just input contained a decimal point
  1083. loop ( -- )
  1084.    End of DO .. LOOP
  1085. lor ( l1 l2 -- l3 )
  1086.    Explicit 32-bit logical or
  1087. lose ( -- )
  1088.    Compiled in place of an undefined word; aborts
  1089. low-res ( -- )
  1090.    Sets the resolution on a color monitor to low - 320x200
  1091. lower ( addr len -- )
  1092.    Converts a string to lower case
  1093. lr> ( -- l )
  1094.    Moves a longword from the return stack
  1095. ls     pattern
  1096.    Display all filenames which match the pattern.  The default pattern is *.*
  1097. lswap ( l1 l2 -- l2 l1 )
  1098.    Swap 2 longwords
  1099. lu< ( ul1 ul2  --  flag )
  1100.    True if ul1 is less than ul2
  1101. lvariable ( -- )    name
  1102.    Define a 32-bit variable
  1103. lwithin ( l1 lmin lmax -- flag )
  1104.    True if lmin <= l1 < lmax; explicitly 32-bit
  1105. lwsplit ( l -- w.low w.high )
  1106.    Split a longword into two words
  1107. m/mod ( l.dividend n.divisor -- n.rem n.quot )
  1108.    Signed 32/normal remainder/quotient
  1109. main-task ( -- addr )
  1110.    The address of the USER area for the initial task
  1111. make ( name -- flag  )
  1112.    Create a file.  Flag is true if the operation succeeded.
  1113. many ( -- )
  1114.    Re-interpret this command line until a key is typed
  1115. max ( n1 n2  --  n3 )
  1116.    n3 is maximum of n1 and n2
  1117. max-image ( -- size )
  1118.    The size in bytes of the maximum dictionary that may be relocated
  1119. md     directory
  1120.    Makes a new directory
  1121. medium-res ( -- )
  1122.    Sets the resolution on a color monitor to medium - 640x200
  1123. memfree ( -- #bytes )
  1124.    The number of bytes available for temporary storage at PAD
  1125. memtop ( -- addr )
  1126.    Variable containing the address of the top of memory used by Forth
  1127. min ( n1 n2  --  n3 )
  1128.    n3 is minimum of n1 and n2
  1129. mkdir     directory
  1130.    Makes a new directory
  1131. mload ( -- )
  1132.    Interprets a file coming over the serial port
  1133. mod ( n1 n2  -- n3 )
  1134.    Remainder of n1/n2
  1135. modify ( -- n )
  1136.    The number signifying to OPEN that the file is to be read and written
  1137. more     filename
  1138.    Displays the contents of the file, pausing after each page
  1139. move ( addr1 addr2 u -- )
  1140.    Copies u bytes from addr1 to addr2
  1141. mu/mod ( ul n -- n.rem ul.quot )
  1142.    Divides longword by normal giving normal remainder and long quotient
  1143. multi ( -- )
  1144.    Turns on multitasking
  1145. mv     old-filename new-filename
  1146.    Changes the name of old-filename to new-filename
  1147. n->a ( n -- addr )
  1148.    Converts a stack item to an address; noop on this system
  1149. n->l ( u -- l )
  1150.    Converts a stack item to a longword; noop on this system
  1151. n->w ( n -- w )
  1152.    Converts a stack item to a word
  1153. n>link ( anf -- alf )
  1154.    Finds link field from name field
  1155. na+ ( addr1 index -- addr2 )
  1156.    Increments addr1 by index times the size of a stack item
  1157. na1+ ( addr1 -- addr2 )
  1158.    Increments addr1 by the size of a stack item
  1159. name> ( anf -- acf )
  1160.    Finds compilation address from name field
  1161. needs ( -- )    name filename
  1162.    Loads file if name is not already defined
  1163. negate ( n1 -- n2 )
  1164.    Changes the sign of n1
  1165. new-file ( filename -- )
  1166.    Creates a new file and opens it for writing, descriptor in OFD
  1167. newexpect ( addr +n -- )
  1168.    The Default implementation of EXPECT
  1169. newline ( -- char )
  1170.    The character which terminates a line
  1171. next-free-mem ( -- addr )
  1172.    Variable containing the address of the end of free memory
  1173. nip ( n1 n2 -- n2 )
  1174.    Discards the second element from the data stack
  1175. nlover ( n1 l -- n1 l n2 )
  1176.    Copies a normal over a longword
  1177. nlswap ( n l -- l n )
  1178.    Swaps a normal and a longword
  1179. noop ( -- )
  1180.    Does nothing
  1181. not ( n1 -- n2 )
  1182.    One's complement
  1183. now ( -- seconds minutes hours )
  1184.    The current time of day
  1185. npatch ( new-number old-number -- )    word-to-patch
  1186.    Substitutes new-number for old-number in word-to-patch
  1187. nullstring ( -- addr )
  1188.    A packed string containing no bytes
  1189. number ( addr -- l )
  1190.    Converts a character string to a 32-bit number or aborts
  1191. number? ( addr -- l flag )
  1192.    Converts a character string to a 32-bit number
  1193. nuser ( -- )    name
  1194.    Defines and allocates space for a 32-bit user variable
  1195. octal ( -- )
  1196.    Sets the number base to eight
  1197. of ( selector test-value -- )
  1198.    Begins an OF ... ENDOF clause within a CASE ... ENDCASE conditional
  1199. ofd ( -- addr )
  1200.    Variable for output file descriptor
  1201. off ( addr  -- )
  1202.    Stores false at addr
  1203. ok ( -- )
  1204.    Does nothing
  1205. on ( addr  -- )
  1206.    Stores true at addr
  1207. only ( -- )
  1208.    Sets the minimum search order
  1209. open ( filename mode -- fd )
  1210.    Opens a file
  1211. or ( n1 n2 -- n3 )
  1212.    Logical or
  1213. order ( -- )
  1214.    Displays the vocabulary search order
  1215. origin ( -- addr )
  1216.    The address of the start of the Forth system
  1217. otherwise ( -- )
  1218.    Conditional useable while interpreting
  1219. over ( n1 n2  --  n1 n2 n3 )
  1220.    n3 is a copy of n1.
  1221. over-vocabulary ( action-acf voc-acf -- )
  1222.    Scans a vocabulary executing action-acf for each word
  1223. pack ( addr1 len addr2 -- addr2 )
  1224.    Makes a packed string from addr1 len, placing it at addr2
  1225. pad ( --  addr )
  1226.    The address of a scratch area used to temporary storage
  1227. patch ( -- )    replacement-word replaced-word word-to-patch
  1228.    Substitute replacement for replaced in word-to-patch
  1229. pause ( -- )
  1230.    Gives other tasks a chance to run
  1231. perform ( addr-of-acf -- )
  1232.    Executes the word contained in a variable
  1233. pick ( n1  --  n2 )
  1234.    Copies n-th number
  1235. place ( addr1 len addr2 -- )
  1236.    Makes a packed string from addr1 len, placing it at addr2
  1237. pload ( -- addr )    program-filename command-tail
  1238.    Loads a TOS program
  1239. pop ( user-stack -- n )
  1240.    Pops a number off a user stack
  1241. previous ( -- )
  1242.    Removes the CONTEXT vocabulary from the search order
  1243. printable? ( char -- flag )
  1244.    True if character is printable
  1245. prompt ( -- )
  1246.    Displays a prompt on the screen
  1247. ps-size ( -- n )
  1248.    The maximum size of the data stack in bytes
  1249. push ( n user-stack -- )
  1250.    Pushes a number on a user stack
  1251. pwd 
  1252.    Displays the name of the current directory
  1253. quit ( -- )
  1254.    Interprets keyboard commands
  1255. r> ( -- n )
  1256.    Moves a number from the return stack to the data stack
  1257. r@ ( -- n )
  1258.    Copies the top of the return stack to the data stack
  1259. rd     directory
  1260.    Deletes a directory
  1261. read ( -- n )
  1262.    The number signifying to OPEN that the file is to be opened for reading
  1263. read-binary ( start-addr -- count )
  1264.    Receives binary data from the serial port storing it at start-addr
  1265. read-open ( filename -- )
  1266.    Opens the file for reading, storing its file descriptor in IFD
  1267. reading     filename
  1268.    Opens the file for reading, storing its file descriptor in IFD
  1269. recursive ( -- )
  1270.    Allows a word being defined to call itself recursively
  1271. relocation-map ( -- addr )
  1272.    The address of the relocation table
  1273. rename     old-filename  new-filename
  1274.    Changes the name of old-filename to new-filename
  1275. repeat ( -- )
  1276.    Ends a BEGIN .. WHILE .. REPEAT loop
  1277. restore-output ( -- )
  1278.    Goes back to the old output stream after ERROR-OUTPUT
  1279. reveal ( -- )
  1280.    Makes the most recent word visible
  1281. right ( -- )
  1282.    Moves the cursor right one column
  1283. rm     filename
  1284.    Deletes a file
  1285. rmargin ( -- addr )
  1286.    Variable containg right margin for output formatting
  1287. rmdir     directory
  1288.    Deletes a directory
  1289. roll ( n  -- )
  1290.    Rotates n numbers
  1291. root ( -- )
  1292.    The vocabulary selected by ONLY
  1293. rot ( n1 n2 n3  ---  n2 n3 n1 )
  1294.    Rotates 3 numbers
  1295. rp! ( addr -- )
  1296.    Changes the return stack pointer
  1297. rp0 ( -- addr )
  1298.    A variable containing the address of the bottom of the return stack
  1299. rp@ ( -- addr )
  1300.    The address of the top of the return stack
  1301. rstrace ( -- )
  1302.    Displays the words nested on the return stack
  1303. s->d ( n -- d )
  1304.    Not Implemented
  1305. s->l ( n -- l )
  1306.    Converts a signed stack item to a longword; noop on this system
  1307. s. ( n -- )
  1308.    Displays n as a signed number
  1309. save-buffers ( -- )
  1310.    Saves the contents of mass storage buffers; Implemented in BLOCK.FTH
  1311. save-forth ( filename -- )
  1312.    Use SAVE-REL instead
  1313. save-rel ( filename -- )
  1314.    Saves a relocatable image of the Forth dictionary in a TOS file
  1315. save-string ( string1 -- string2 )
  1316.    Moves a string somewhere else
  1317. saved-ip ( -- addr )
  1318.    User variable containing the interpreter pointer for an inactive task
  1319. saved-rp ( -- addr )
  1320.    User variable containing the return stack pointer for an inactive task
  1321. saved-sp ( -- addr )
  1322.    USER variable containing the stack pointer for an inactive task
  1323. scr ( --  addr )
  1324.    Variable with the number of last block LISTED; Implemented in BLOCK.FTH
  1325. sdepth ( user-stack -- depth )
  1326.    The number of items on a user stack
  1327. seal ( -- )
  1328.    Restricts the search order
  1329. search ( n start end -- loc true | false )
  1330.    Searches for n between start-addr and end-addr
  1331. see ( -- )    name
  1332.    Decompiles the named word
  1333. setexc ( addr vec# -- oldaddr )
  1334.    Sets the handler for exception vec# to addr, returning the old handler
  1335. set-drive ( drive# -- )
  1336.    Sets the current disk drive; 0 - A:   1 - B:   2 - C:
  1337. set-relocation-bit ( addr -- addr )
  1338.    Sets the relocation bit corresponding to the address addr
  1339. showcrash ( -- )
  1340.    Displays the machine state saved from the last crash
  1341. sift ( string -- )
  1342.    Finds all words which contain string as part of their name
  1343. sifting ( -- )    ccc
  1344.    Finds all words which contain  ccc as part of their name
  1345. sign ( n  -- )
  1346.    Sets sign of pictured output
  1347. sindex ( addr1 len1 addr2 len2 -- n )
  1348.    Finds the offset within string 1 where string 2 first occurs
  1349. single ( -- )
  1350.    Turns off multitasking
  1351. size ( -- )    pattern
  1352.    Shows the sizes of the files matching pattern; default pattern is *.*
  1353. skipcword ( char fd -- )
  1354.    Skips past the next occurrence of char in the file fd
  1355. skipstr ( -- addr len )
  1356.    Used to implement words with in-line strings
  1357. sp! ( addr -- )
  1358.    Changes the data stack pointer
  1359. sp0 ( --  ADDR )
  1360.    Variable containing the address of the bottom of the Data Stack
  1361. sp@ ( -- addr )
  1362.    The address of the top of the data stack
  1363. space ( -- )
  1364.    Displays a space character
  1365. spaces ( +n  -- )
  1366.    Displays n spaces
  1367. span ( -- addr )
  1368.    Variable containing the number of characters read by EXPECT
  1369. splice-relocation ( filename -- )
  1370.    Used before SAVE-REL to get the relocation info from the TOS file
  1371. ssp ( -- addr )
  1372.    Variable containing the previous value of the Supervisor Stack Pointer
  1373. stack: ( #bytes -- )    name
  1374.    Defines a user stack with #bytes of storage space
  1375. state ( -- addr )
  1376.    Variable that is nonzero in compile state
  1377. status ( -- )
  1378.    User-settable action to be performed before prompting for input
  1379. string-array ( -- )    name
  1380.    Begins the definition of a string array
  1381. string-fopen ( addr len -- fd )
  1382.    Opens a file for a memory string
  1383. string-load ( addr len -- )
  1384.    Interprets from a string
  1385. subroutine: ( addr -- )    name
  1386.    Begins the definition of a word to execute a subroutine call to addr
  1387. substring? ( str1 str2 -- flag )
  1388.    True if str1 is a substring of str2
  1389. supervisor-state ( -- )
  1390.    Puts the processor in supervisor state
  1391. swap ( n1 n2  --  n2 n1 )
  1392.    Exchanges the top 2 stack entries.
  1393. sys-(key? ( -- flag )
  1394.    The Default implementation of KEY?
  1395. sys-emit ( char -- )
  1396.    Displays the character
  1397. sys-key ( -- char )
  1398.    The Default implementation of KEY
  1399. system ( -- )
  1400.    Vocabulary containing GEMDOS interface words
  1401. ta1+ ( addr1 -- addr2 )
  1402.    Increments addr1 by the size of a compiled address
  1403. tabstops ( -- addr )
  1404.    Variable containing distance between output fields
  1405. tail     filename
  1406.    Displays the last 1000 bytes of the file
  1407. td ( -- ? )
  1408.    Interprets the next word or number in DECIMAL mode
  1409. th ( -- ? )
  1410.    Interprets the next word or number in HEX mode
  1411. then ( -- )
  1412.    Terminates an IF ... ELSE ... THEN
  1413. tib ( -- addr )
  1414.    The address of the Text Input Buffer
  1415. tib-fd ( -- fd )
  1416.    File descriptor for the interactive input stream
  1417. time-zone ( -- minutes-west-of-GMT )
  1418.    The local time zone
  1419. time-zone-minutes ( -- addr )
  1420.    Variable containing the number of minutes west of GMT; see TIME-ZONE
  1421. times ( n -- )
  1422.    Re-interprets the command line n times
  1423. title ( -- )
  1424.    Displays the name and version of the Forth system
  1425. to-column ( column -- )
  1426.    Advances the output to the indicated column
  1427. to-file ( -- )    filename
  1428.    Temporarily redirects output to a file
  1429. today ( -- day month year )
  1430.    Today's date
  1431. toggle ( addr byte-mask -- )
  1432.    Inverts the masked bits within the byte at addr
  1433. token! ( addr2 addr1 -- )
  1434.    Stores a relocatable address at addr1
  1435. token, ( addr -- )
  1436.    Places a relocatable address in the dictionary
  1437. token@ ( addr1 -- addr2 )
  1438.    Fetches a relocatable address
  1439. top! ( n user-stack -- )
  1440.    Replaces the top number on a user stack
  1441. top@ ( user-stack -- n )
  1442.    Gets the top number from a user stack without popping it
  1443. trap: ( function# trap# -- )    name
  1444.    Begins the definition of a word to execute a trap call
  1445. true ( -- -1 )
  1446.    The value TRUE , which is -1
  1447. tsearch ( addr start end -- loc true | false )
  1448.    Searches for address addr between start-addr and end-addr
  1449. tuck ( n1 n2 -- n2 n1 n2 )
  1450.    Copies the top of the stack underneath the second item
  1451. tuser ( -- )    name
  1452.    Defines and allocate space for a User variable to contain an address
  1453. type ( addr +n -- )
  1454.    Displays n characters
  1455. u* ( u1 u2 -- u3 )
  1456.    Unsigned u1*u2
  1457. u. ( u -- )
  1458.    Displays an unsigned number
  1459. u.r ( u +n -- )
  1460.    Prints an unsigned number in fixed width field
  1461. u2/ ( u1 -- u2 )
  1462.    Logical right shift
  1463. u< ( u1 u2  --  flag )
  1464.    Unsigned version of < .
  1465. u<= ( u1 n2 -- flag )
  1466.    True if u1 is less than or equal to u2
  1467. u> ( u1 n2 -- flag )
  1468.    True if u1 is greater than u2
  1469. u>= ( u1 n2 -- flag )
  1470.    True if u1 is greater than or equal to u2
  1471. ualloc ( size -- new-user-number )
  1472.    Allocates space in the user area
  1473. ul* ( ul1 ul2 -- lproduct )
  1474.    Unsigned 32x32 -> 32 multiply
  1475. ul. ( ul -- )
  1476.    Displays a 32-bit unsigned number
  1477. ul.r ( ul +n -- )
  1478.    Displays a 32-bit unsigned number in a fixed-width field
  1479. um* ( uw1 uw2 -- ul )
  1480.    16 bits times 16 bits unsigned multiply
  1481. um/mod ( ul.dividend un.divisor -- un.rem un.quot )
  1482.    Unsigned 32/normal remainder/quotient
  1483. umax ( u1 u2 -- u3 )
  1484.    Unsigned maximum
  1485. umin ( u1 u2 -- u3 )
  1486.    Unsigned minimum
  1487. unload-emacs ( -- )
  1488.    Removes EMACS from memory
  1489. unnest ( -- )
  1490.    Returns from a colon definition
  1491. until ( flag -- )
  1492.    Continues executing a BEGIN .. UNTIL loop until flag is true
  1493. up ( -- )
  1494.    Moves the cursor up one line
  1495. up! ( addr -- )
  1496.    Changes the starting address of the user area
  1497. up0 ( -- addr )
  1498.    User variable containing the starting address of the USER area
  1499. up@ ( --  addr )
  1500.    The starting address of the aser area
  1501. upc ( char -- upper-case-char )
  1502.    Converts char to upper case
  1503. update ( -- )
  1504.    Marks a mass storage buffer as modified; Implemented in BLOCK.FTH
  1505. upper ( addr len -- )
  1506.    Converts a string to upper case
  1507. user ( offset -- )    name
  1508.    Defines a variable at the given offset in the User area
  1509. user-size ( -- n )
  1510.    The size in bytes of the USER area.
  1511. user-state ( -- )
  1512.    Puts the processor into user state
  1513. variable ( -- )    name
  1514.    Defines a variable
  1515. vec! ( addr vector# -- )
  1516.    Installs an interrupt/exception handler
  1517. vfind ( str voc-ptr -- cfa 1 )
  1518.    Searches for a word in a single vocabulary
  1519. voc-link ( -- addr )
  1520.    USER variable containing the address of the last vocabulary created
  1521. vocabulary ( -- )    name
  1522.    Defines a new vocabulary
  1523. vocs ( -- )
  1524.    Displays the names of all vocabularies in the system
  1525. w! ( w addr -- )
  1526.    Stores a 16-bit word at addr
  1527. w, ( w -- )
  1528.    Places a word in the dictionary
  1529. w->l ( uw -- l )
  1530.    Converts an unsigned 16-bit number to a 32-bit number
  1531. w@ ( addr -- w )
  1532.    Fetches the unsigned word at addr
  1533. wa+ ( addr1 index -- addr2 )
  1534.    Increments addr1 by index times the size of a word
  1535. wa1+ ( addr1 -- addr2 )
  1536.    Increments addr1 by the size of a word
  1537. warm ( -- )
  1538.    Restarts Forth after a hardware exception
  1539. warm-hook ( -- )
  1540.    Place to install a user-defined handler for hardware exceptions
  1541. warning ( -- addr )
  1542.    USER variable controlling "isn't Unique" messages
  1543. wconstant ( w -- )    name
  1544.    Defines a 16-bit constant
  1545. wflip ( l1 -- l2 )
  1546.    Swaps the 16-bit halves of a 32-bit longword
  1547. whatis ( -- )    name
  1548.    Displays a brief description of the named word
  1549. where ( -- )
  1550.    Prints a message telling where in the input stream you are
  1551. while ( flag  -- )
  1552.    Continues execution of BEGIN .. WHILE .. REPEAT loop while flag is true
  1553. why ( --  )
  1554.    Displays more information about the last system error
  1555. within ( n min max -- f )
  1556.    True if n <= x < max
  1557. wljoin ( w.low w.high -- l )
  1558.    Joins two words to form a longword
  1559. word ( char -- addr )
  1560.    Collects a char-delimited string from the input stream
  1561. word-bounds ( acf -- apf addr )
  1562.    Finds the start and end of a colon definition's body
  1563. words ( -- )
  1564.    Displays the words in the context vocabulary
  1565. write ( -- n )
  1566.    The number signifying to OPEN that the file is to be written
  1567. write-open ( name -- )
  1568.    Opens the file for writing, storing its file descriptor in OFD
  1569. writing     filename
  1570.    Creates a new file and open it for writing, descriptor in OFD
  1571. wsearch ( w start end -- loc true | false )
  1572.    Searches for 16-bit word w between start-addr and end-addr
  1573. wvariable ( -- )    name
  1574.    Begins the definition of a word to execute an extended BIOS function
  1575. xload ( -- )    filename
  1576.    Loads the file and displays a message to that effect
  1577. xor ( n1 n2 -- n3 )
  1578.    Exclusive or
  1579. zapaes ( -- )
  1580.    Gets rid of the GEM AES; useless if TOS is in ROM
  1581. [ ( -- )
  1582.    Begins interpreting
  1583. [""] ( -- )    ccc
  1584.    Collects a word from the input stream and compiles it as a string
  1585. ['] ( -- addr )
  1586.    Compiles the compilation address of a word
  1587. [assembler] ( -- )
  1588.    Immediately select the assembler vocabulary
  1589. [compile] ( -- )
  1590.    Compiles the next word even if it's immediate
  1591. \ ( -- )    rest-of-line
  1592.    Skips the rest of the line
  1593. \c ( -- )    rest-of-line
  1594.    Skips the rest of the line
  1595. \dtc ( -- )
  1596.    Does nothing
  1597. \itc ( -- )
  1598.    Ignores the rest of the line
  1599. \needs ( -- )    name rest-of-line
  1600.    Interprets the rest of the line if needed-word is not already defined
  1601. \t16 ( -- )
  1602.    Ignores the rest of the line
  1603. \t32 ( -- )
  1604.    Does nothing
  1605. ] ( -- )
  1606.    Begins compilation
  1607. { ( -- )    argument-<list}
  1608.    Begin the argument specification for BDOS:, etc
  1609.